package $16_anonymousinnerclass;
/*匿名内部类：没有名字的特殊局部内部类
 * 格式：
 * new 类名或接口名() {
 * 		重写方法
 * }
 * 使用场景：作为方法的参数传递
 * 
 * 传统实现方法
 * 1.编写实现类
 * 2.重写抽象方法
 * 3.创建实现类对象
 * 4.将实现类对象作为方法的参数进行传递
 * 使用匿名内部类相当于省略了前三步，更加简便
 */
public class Test {

	public static void main(String[] args)
	{
		/*//传统方法
		Dog dog = new Dog();
		useAnimal(dog);*/
		
		//使用匿名内部类，如下外部括号内部的整体，即为一个匿名内部类。即useAnimal(匿名内部类);
		//该匿名内部类相当于Animal父类的子类对象
		useAnimal(new Animal() 
		{
			public void eat() 
			{
				System.out.println("狗吃肉");
			}
		}
		);
		
		
	}
	
	//Animal a = 匿名内部类;
	public static void useAnimal(Animal a)
	{
		a.eat();
	}

}
